package com.hackafone.tale.service.dao;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;

import javax.persistence.EntityManager;

import com.hackafone.tale.service.model.Tale;

public enum TaleDao
{
	INSTANCE;

	public List<Tale> listTales()
	{
		EntityManager em = EMFService.get().createEntityManager();
		// Read the existing entries
		Query q = em.createQuery("select m from Tale m");
		List<Tale> todos = q.getResultList();
		return todos;
	}

	public void add(Tale tale)
	{
		synchronized (this)
		{
			EntityManager em = EMFService.get().createEntityManager();
			em.persist(tale);
			em.close();
		}
	}

	public Tale getTaleById(long taleId)
	{

		EntityManager em = EMFService.get().createEntityManager();
		try
		{
			Tale tale = em.find(Tale.class, taleId);
			return tale;
		}
		finally
		{
			em.close();
		}
	}

	// public List<Todo> getTodos(String userId) {
	// EntityManager em = EMFService.get().createEntityManager();
	// Query q = em
	// .createQuery("select t from Todo t where t.author = :userId");
	// q.setParameter("userId", userId);
	// List<Todo> todos = q.getResultList();
	// return todos;
	// }
	//
	// public void remove(long id) {
	// EntityManager em = EMFService.get().createEntityManager();
	// try {
	// Todo todo = em.find(Todo.class, id);
	// em.remove(todo);
	// } finally {
	// em.close();
	// }
	// }

}
